package br.patrimonio.inventario.mb;

import java.io.Serializable;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpSession;

import br.patrimonio.inventario.dao.DAO;
import br.patrimonio.inventario.entity.Mensagem;
import br.patrimonio.util.Msg;

@ViewScoped
@ManagedBean
public class MensagemBean implements Serializable {

	private static final long serialVersionUID = 1L;
	
	private DAO<Mensagem>    dao = new DAO<Mensagem>(Mensagem.class);
	private List<Mensagem> msgs;
	private Mensagem       mensagem = new Mensagem();
	public  Boolean 	cadastro = true;
	private Long 		mensagemId;
			
	public void carregaMensagem() {

		DAO<Mensagem> dao = new DAO<Mensagem>(Mensagem.class);
		if (mensagemId != null && mensagemId != 0) {
			this.mensagem = dao.buscaPorId(this.mensagemId);
		}
	}
	
	public String grava() {
			Msg.addMsgInfo("Mensagem Enviada Com Sucesso! Verifique no Menu Principal.");
			dao.atualiza(mensagem);
			this.mensagem = new Mensagem();
			FacesContext facesContext = FacesContext.getCurrentInstance();
			HttpSession session = (HttpSession) facesContext.getExternalContext()
					.getSession(false);
			session.invalidate();
			return "index.xhtml";
	}
	
	public List<Mensagem> getMsgs() {
		if (msgs == null) {
			System.out.println("Carregando Mensagens...");
			msgs = new DAO<Mensagem>(Mensagem.class).listaTodos();
		}
		return msgs;
	}
	
	/** Getters and Setters **/

	public DAO<Mensagem> getDao() {
		return dao;
	}

	public void setDao(DAO<Mensagem> dao) {
		this.dao = dao;
	}

	public Mensagem getMensagem() {
		return mensagem;
	}

	public void setMensagem(Mensagem mensagem) {
		this.mensagem = mensagem;
	}

	public Boolean getCadastro() {
		return cadastro;
	}

	public void setCadastro(Boolean cadastro) {
		this.cadastro = cadastro;
	}

	public Long getMensagemId() {
		return mensagemId;
	}

	public void setMensagemId(Long mensagemId) {
		this.mensagemId = mensagemId;
	}

	public void setMsgs(List<Mensagem> msgs) {
		this.msgs = msgs;
	}		
	
}
